package com.koron.plan.web.maintainplan.bean.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @author twcao
 * @title: MaintainDTO
 * @projectName GDH_EAM_V2
 * @description: 正常维护工单
 * @date 2021/11/1214:31
 */
@Data
@ApiModel("正常维护工单")
public class MaintainDTO {

    @ApiModelProperty(value = "唯一id")
    private String id;

    @ApiModelProperty(value = "维护工单编码")
    private String code;

    @ApiModelProperty(value = "维护工单标题")
    private String title;

    @ApiModelProperty(value = "设备管理单位ID")
    private String deptManage;

    @ApiModelProperty(value = "设备管理单位名称")
    private String deptManageName;

    @ApiModelProperty(value = "专业")
    private String major;

    @ApiModelProperty(value = "工单性质")
    private Integer nature;

    @ApiModelProperty(value = "工单来源")
    private String source;

    @ApiModelProperty(value = "工单来源的ID")
    private String sourceId;

    @ApiModelProperty(value = "工作地点ID")
    private String location;

    @ApiModelProperty(value = "工作地点名称")
    private String locationName;

    @ApiModelProperty(value = "预计开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty(value = "预计结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty(value = "工作内容")
    private String context;

    @ApiModelProperty(value = "备注")
    private String marks;

    @ApiModelProperty(value = "是否需要作业表单")
    private Integer needStatus;

    @ApiModelProperty(value = "存在的问题")
    private String problem;

    @ApiModelProperty(value = "改进建议")
    private String opinion;

    @ApiModelProperty(value = "工单状态")
    private String status;

    @ApiModelProperty(value = "实际结束时间")
    private Date factEndTime;

    @ApiModelProperty(value = "创建人账号", hidden = true)
    private String createBy;

    @ApiModelProperty(value = "创建人姓名", hidden = true)
    private String createByName;

    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createTime;

    @ApiModelProperty(value = "更新人账号", hidden = true)
    private String updateBy;

    @ApiModelProperty(value = "更新人姓名", hidden = true)
    private String updateByName;

    @ApiModelProperty(value = "更新时间", hidden = true)
    private Date updateTime;

    @ApiModelProperty(value = "删除标志", hidden = true)
    private Integer deleteFlag = 0;

    @ApiModelProperty(value = "创建单位ID", hidden = true)
    private String deptId;

    @ApiModelProperty(value = "创建单位名称", hidden = true)
    private String deptName;

    @ApiModelProperty(value = "是否提交")
    private Boolean isCommit = false;

    @ApiModelProperty(value = "维护工单_作业准备")
    private List<MaintainReadyPo> maintainReadyPoList;

    @ApiModelProperty(value = "维护工单_作业过程")
    private List<MaintainEquipmentPo> maintainEquipmentPoList;

    @ApiModelProperty(value = "维护工单_作业指导书")
    private List<OrderInstructionBean> orderInstructionBeanList;

    @ApiModelProperty(value = "基础信息的设备列表")
    private List<OrderEquipPo> orderEquipPoList;

    @ApiModelProperty(value = "计划id")
    private String planId;

    @ApiModelProperty(value = "计划编号")
    private String planCode;
}
